<html>
	<head>
		<meta charset="utf-8"></meta>
		<title>BNode</title>
		<link href="./style.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
		<div class="class" name="BNode">
			<h1>BNode</h1>
			<p>继承自<a href="BObject.html">BObject</a></p>
			<p id="resume">BNode是场景节点，可包含若干形状对象，是场景中可见的常用组织单元。<a href="#desc">详细</a></p>
			<h2>public</h2>
			<table id="public">
				<tr><td align="right"/><td><a href="#BNode(BGroup*)">BNode</a>(BGroup* group = 0);</td></tr>
				<tr><td align="right"/><td><a href="#BNode(const BString&,BGroup*)">BNode</a>(const BString&amp; name, BGroup* group = 0);</td></tr>
				<tr><td align="right"/><td><a href="#BNode(const BNode&)">BNode</a>(const BNode&amp; other);</td></tr>
				<tr><td align="right"/><td><a href="#~BNode()">~BNode</a>();</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#copy(const BNode*)">copy</a>(const BNode* other);</td></tr>
				<tr><td align="right">virtual BNode* </td><td><a href="#clone()">clone</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setGroup(BGroup*)">setGroup</a>(BGroup* group);</td></tr>
				<tr><td align="right">BGroup* </td><td><a href="#group()">group</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setVisible(bool)">setVisible</a>(bool visible);</td></tr>
				<tr><td align="right">bool </td><td><a href="#visible()">visible</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setOptimized(bool)">setOptimized</a>(bool optimized);</td></tr>
				<tr><td align="right">bool </td><td><a href="#optimized()">optimized</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#move(const BVector&)">move</a>(const BVector&amp; position);</td></tr>
				<tr><td align="right">void </td><td><a href="#move(BReal, BReal, BReal)">move</a>(BReal x, BReal y, BReal z);</td></tr>
				<tr><td align="right">void </td><td><a href="#setPosition(BReal, BReal, BReal)">setPosition</a>(BReal x, BReal y, BReal z);</td></tr>
				<tr><td align="right">void </td><td><a href="#setPosition(const BVector&)">setPosition</a>(const BVector&amp; position);</td></tr>
				<tr><td align="right">BVector </td><td><a href="#position()">position</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setEuler(BReal, BReal, BReal)">setEuler</a>(BReal ex, BReal ey, BReal ez);</td></tr>
				<tr><td align="right">void </td><td><a href="#setEuler(const BVector&)">setEuler</a>(const BVector&amp; euler);</td></tr>
				<tr><td align="right">BVector </td><td><a href="#euler()">euler</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setRotate(BReal, BReal, BReal, BReal)">setRotate</a>(BReal qx, BReal qy, BReal qz, BReal qw);</td></tr>
				<tr><td align="right">void </td><td><a href="#setRotate(const BQuater&)">setRotate</a>(const BQuater&amp; quater);</td></tr>
				<tr><td align="right">BQuater </td><td><a href="#rotate()">rotate</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setScale(BReal, BReal, BReal)">setScale</a>(BReal x, BReal y, BReal z);</td></tr>
				<tr><td align="right">void </td><td><a href="#setScale(const BVector&)">setScale</a>(const BVector&amp; scale);</td></tr>
				<tr><td align="right">BVector </td><td><a href="#scale()">scale</a>() const;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#setMatrix(const BMatrix&)">setMatrix</a>(const BMatrix&amp; matrix);</td></tr>
				<tr><td align="right">const BMatrix&amp; </td><td><a href="#matrix()">matrix</a>() const;</td></tr>
				<tr><td align="right">const BBox&amp; </td><td><a href="#box()">box</a>() const;</td></tr>
				<tr><td align="right">const BSpace&amp; </td><td><a href="#space()">space</a>() const;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#insertShape(BShape*)">insertShape</a>(BShape* shape);</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#removeShape(BShape*)">removeShape</a>(BShape* shape);</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#clearShapes()">clearShapes</a>();</td></tr>
				<tr><td align="right">bool </td><td><a href="#contain(const BShape*)">contain</a>(const BShape* shape) const;</td></tr>
				<tr><td align="right">int </td><td><a href="#shapeCount()">shapeCount</a>() const;</td></tr>
				<tr><td align="right">BShape* </td><td><a href="#shape(int)">shape</a>(int index);</td></tr>
				<tr><td align="right">const BShape* </td><td><a href="#shape(int)">shape</a>(int index) const;</td></tr>
				<tr><td align="right">BShape* </td><td><a href="#shape(const BString&)">shape</a>(const BString&amp; name);</td></tr>
				<tr><td align="right">const BShape* </td><td><a href="#shape(const BString&)">shape</a>(const BString&amp; name) const;</td></tr>
				<tr><td align="right">BString </td><td><a href="#path()">path</a>() const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#path(BString&)">path</a>(BString&amp; path) const;</td></tr>
				<tr><td align="right">BString </td><td><a href="#path(const BGroup*)">path</a>(const BGroup* base) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#path(const BGroup*, BString&)">path</a>(const BGroup* base, BString&amp; path) const;</td></tr>
				<tr><td align="right">BString </td><td><a href="#path(const BShape*)">path</a>(const BShape* shape) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#path(const BShape*, BString&)">path</a>(const BShape* shape, BString&amp; path) const;</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#dirty()">dirty</a>();</td></tr>
				<tr><td align="right">virtual BBox </td><td><a href="#flush()">flush</a>() const;</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#clear()">clear</a>();</td></tr>
			</table>
			<div id="desc">
				<h2>详细介绍：</h2><p>BNode是场景节点，可包含若干形状对象，是场景中可见的常用组织单元。</p><p>其中包含的形状会应用节点的变换，多个形状作为一个整体。包围盒BBox描述了节点的本体尺寸，基于包围盒（BBox）应用变换后是节点的空间（BSpace）值。</p><p>与物体对象相比，节点对象只能用于场景结构管理，而没有非物理实体。</p>
			</div>
			<h2 id="docs">成员文档：</h2>
			<div id="BNode(BGroup*)">
				<h3>BNode(BGroup* group = 0);</h3>
			</div>
			<div id="BNode(const BString&,BGroup*)">
				<h3>BNode(const BString&amp; name, BGroup* group = 0);</h3>
			</div>
			<div id="BNode(const BNode&)">
				<h3>BNode(const BNode&amp; other);</h3>
			</div>
			<div id="~BNode()">
				<h3>~BNode();</h3>
			</div>
			<div id="copy(const BNode*)">
				<h3>virtual void copy(const BNode* other);</h3>
			</div>
			<div id="clone()">
				<h3>virtual BNode* clone() const;</h3>
			</div>
			<div id="setGroup(BGroup*)">
				<h3>void setGroup(BGroup* group);</h3>
			</div>
			<div id="group()">
				<h3>BGroup* group() const;</h3>
			</div>
			<div id="setVisible(bool)">
				<h3>void setVisible(bool visible);</h3>
			</div>
			<div id="visible()">
				<h3>bool visible() const;</h3>
			</div>
			<div id="setOptimized(bool)">
				<h3>void setOptimized(bool optimized);</h3>
			</div>
			<div id="optimized()">
				<h3>bool optimized() const;</h3>
			</div>
			<div id="move(const BVector&)">
				<h3>void move(const BVector&amp; position);</h3>
			</div>
			<div id="move(BReal, BReal, BReal)">
				<h3>void move(BReal x, BReal y, BReal z);</h3>
			</div>
			<div id="setPosition(BReal, BReal, BReal)">
				<h3>void setPosition(BReal x, BReal y, BReal z);</h3>
			</div>
			<div id="setPosition(const BVector&)">
				<h3>void setPosition(const BVector&amp; position);</h3>
			</div>
			<div id="position()">
				<h3>BVector position() const;</h3>
			</div>
			<div id="setEuler(BReal, BReal, BReal)">
				<h3>void setEuler(BReal ex, BReal ey, BReal ez);</h3>
			</div>
			<div id="setEuler(const BVector&)">
				<h3>void setEuler(const BVector&amp; euler);</h3>
			</div>
			<div id="euler()">
				<h3>BVector euler() const;</h3>
			</div>
			<div id="setRotate(BReal, BReal, BReal, BReal)">
				<h3>void setRotate(BReal qx, BReal qy, BReal qz, BReal qw);</h3>
			</div>
			<div id="setRotate(const BQuater&)">
				<h3>void setRotate(const BQuater&amp; quater);</h3>
			</div>
			<div id="rotate()">
				<h3>BQuater rotate() const;</h3>
			</div>
			<div id="setScale(BReal, BReal, BReal)">
				<h3>void setScale(BReal x, BReal y, BReal z);</h3>
			</div>
			<div id="setScale(const BVector&)">
				<h3>void setScale(const BVector&amp; scale);</h3>
			</div>
			<div id="scale()">
				<h3>BVector scale() const;</h3>
			</div>
			<div id="setMatrix(const BMatrix&)">
				<h3>virtual bool setMatrix(const BMatrix&amp; matrix);</h3>
			</div>
			<div id="matrix()">
				<h3>const BMatrix&amp; matrix() const;</h3>
			</div>
			<div id="box()">
				<h3>const BBox&amp; box() const;</h3>
			</div>
			<div id="space()">
				<h3>const BSpace&amp; space() const;</h3>
			</div>
			<div id="insertShape(BShape*)">
				<h3>virtual bool insertShape(BShape* shape);</h3>
			</div>
			<div id="removeShape(BShape*)">
				<h3>virtual bool removeShape(BShape* shape);</h3>
			</div>
			<div id="clearShapes()">
				<h3>virtual bool clearShapes();</h3>
			</div>
			<div id="contain(const BShape*)">
				<h3>bool contain(const BShape* shape) const;</h3>
			</div>
			<div id="shapeCount()">
				<h3>int shapeCount() const;</h3>
			</div>
			<div id="shape(int)">
				<h3>BShape* shape(int index);</h3>
			</div>
			<div id="shape(int)">
				<h3>const BShape* shape(int index) const;</h3>
			</div>
			<div id="shape(const BString&)">
				<h3>BShape* shape(const BString&amp; name);</h3>
			</div>
			<div id="shape(const BString&)">
				<h3>const BShape* shape(const BString&amp; name) const;</h3>
			</div>
			<div id="path()">
				<h3>BString path() const;</h3>
			</div>
			<div id="path(BString&)">
				<h3>bool path(BString&amp; path) const;</h3>
			</div>
			<div id="path(const BGroup*)">
				<h3>BString path(const BGroup* base) const;</h3>
			</div>
			<div id="path(const BGroup*, BString&)">
				<h3>bool path(const BGroup* base, BString&amp; path) const;</h3>
			</div>
			<div id="path(const BShape*)">
				<h3>BString path(const BShape* shape) const;</h3>
			</div>
			<div id="path(const BShape*, BString&)">
				<h3>bool path(const BShape* shape, BString&amp; path) const;</h3>
			</div>
			<div id="dirty()">
				<h3>virtual void dirty();</h3>
			</div>
			<div id="flush()">
				<h3>virtual BBox flush() const;</h3>
			</div>
			<div id="clear()">
				<h3>virtual void clear();</h3>
			</div>
		</div>
	</body>
</html>